home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / pao / towns / paolib / sample / ctrl_t2.c < prev    next >
Text File  |  1991-10-18  |  4KB  |  148 lines

  1. /*
  2. **    CONTROL.EXE を介して TMENU を通さずに 他の.EXP へ制御を移す。
  3. **
  4. **    CTRL_T1 ←→ CTRL_T2
  5. **
  6. **    < note > : TABS = 4
  7. **
  8. **    注意 : カレントにRUN386.EXEとCTRL_T1.EXPが必要です。また、TownsMENUから起動
  9. **           することが前提です。
  10. */
  11.  
  12. pragma    Off (Floating_point) ;
  13.  
  14. #include <stdio.h>
  15. #include <dos.h>
  16. #include <stdlib.h>
  17. #include <string.h>
  18. #include <egb.h>
  19. #include <mos.h>
  20. #include <fmc.h>
  21. #include "hc.h"
  22. #include "key.h"
  23.  
  24. #define    GworkSize    1536                    /*  グラフィック作業域のサイズ    */
  25. char    Gwork[GworkSize] ;                    /*  グラフィック作業域            */
  26. #define    MworkSize    4096                    /*  マウス作業域のサイズ        */
  27. char    Mwork[MworkSize] ;                    /*  マウス作業域                */
  28.  
  29. struct _ENCODE    encode ;
  30. union _MOJI    moji ;
  31.  
  32. /*******************************  初期化  ************************************/
  33. void gminit()
  34. {
  35.     TEXT_init( Gwork,GworkSize ) ;        /* EGB 初期化                        */
  36.     GRP_viewport( 0,0,1023,511 ) ;        /* View Port SET                    */
  37.     TEXT_cursor( TRUE ) ;                /* カーソル表示                            */
  38.  
  39.     MOS_start( Mwork,MworkSize ) ;
  40.     MOS_disp( FALSE ) ;
  41. }
  42.  
  43. /*****************************  ★ メイン ★  ********************************/
  44. void main( int ac, char *av[] )
  45. {
  46.     int        c, err=0 ;
  47.     char    s[120] ;
  48.     char    intext[128] ;
  49.  
  50.     gminit() ;
  51.  
  52.     TEXT_color( C_HYELLOW ) ;
  53.     TEXT_printf( "\nCTRL_T2.EXP......\n" ) ;
  54.     strcpy( s,"RUN386.exe CTRL_T1 " ) ;
  55.     if ( ac > 1 ) {
  56.         for ( c=1; c<ac; c++ ) {
  57.             TEXT_color( C_LIGHTBLUE ) ;
  58.             TEXT_printf( "引数[%02d] = %s(%d)\n",c,av[c],strlen(av[c]) ) ;
  59.             if ( (strlen(s)+strlen(av[c])) < 120 )
  60.                 strcat( s,av[c] ) ;
  61.             else
  62.                 break ;
  63.         }
  64.     } else {
  65.         strcat( s,"引数なし" ) ;
  66.     }
  67.     TEXT_color( C_HGREEN ) ;
  68.     TEXT_printf( "s = %s(%d)\n",s,strlen(s) ) ;
  69.     
  70.     TEXT_color( C_HLIGHTBLUE ) ;
  71.     TEXT_printf( "1: →CTRL_T1, 2: →CTRL_T2, 3: EXIT !, " ) ;
  72.     TEXT_printf( "4: POFF, 5: RESET, 他: 終了\n" ) ;
  73.     moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
  74.     TEXT_color( C_HGREEN ) ;
  75.     TEXT_printf( "HIT KEY IS " ) ;
  76.     intext[0] = moji.hl.l ;
  77.     intext[1] = '\0' ;
  78.     TEXT_printf( intext ) ;
  79.     TEXT_cr() ;
  80.     MOS_end() ;
  81.  
  82.     TEXT_cr() ;
  83.     switch ( moji.hl.l ) {
  84.     case '1' :
  85.         if ( strlen( s ) < 119 ) strcat( s,"1" ) ;
  86.         strcpy( CTRL_cmdline_data,s ) ;
  87.         TEXT_color( C_HWHITE ) ;
  88.         TEXT_printf( "CMD LINE PARAMETER : " ) ;
  89.         TEXT_printf( CTRL_cmdline_data ) ;
  90.         KYB_clrbuf() ;                            /*  バッファクリア            */
  91.         TEXT_color( C_HGREEN ) ;
  92.         TEXT_printf( "\n何かキーを押して下さい。 " ) ;
  93.         moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
  94.         RealCall( CTRL_cmdline ) ;
  95.         exit( 0 ) ;
  96.         break ;
  97.     case '2' :
  98.         strcpy( CTRL_cmdline_data,"RUN386.exe CTRL_T2 RETRY ..." ) ;
  99.         TEXT_color( C_HWHITE ) ;
  100.         TEXT_printf( "CMD LINE PARAMETER : " ) ;
  101.         TEXT_printf( CTRL_cmdline_data ) ;
  102.         KYB_clrbuf() ;                            /*  バッファクリア            */
  103.         TEXT_color( C_HGREEN ) ;
  104.         TEXT_printf( "\n何かキーを押して下さい。 " ) ;
  105.         moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
  106.         RealCall( CTRL_cmdline ) ;
  107.         exit( 0 ) ;
  108.         break ;
  109.     case '3' :
  110.         KYB_clrbuf() ;                            /*  バッファクリア            */
  111.         TEXT_color( C_HGREEN ) ;
  112.         TEXT_printf( "\n何かキーを押して下さい。 " ) ;
  113.         moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
  114.         exit( 0 ) ;
  115.         break ;
  116.     case '4' :
  117.         KYB_clrbuf() ;                            /*  バッファクリア            */
  118.         TEXT_color( C_HGREEN ) ;
  119.         TEXT_printf( "\n何かキーを押して下さい。 " ) ;
  120.         moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
  121.         poff() ;
  122.         break ;
  123.     case '5' :
  124.         KYB_clrbuf() ;                            /*  バッファクリア            */
  125.         TEXT_color( C_HGREEN ) ;
  126.         TEXT_printf( "\n何かキーを押して下さい。 " ) ;
  127.         moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
  128.         reboot() ;
  129.         break ;
  130.     default  :
  131.         intext[0] = moji.hl.l ;
  132.         intext[1] = '\0' ;
  133.         TEXT_color( C_HGREEN ) ;
  134.         TEXT_printf( intext ) ;
  135.         TEXT_color( C_HWHITE ) ;
  136.         TEXT_printf( " KEY HITTED : PG. END" ) ;
  137.         break ;
  138.     }
  139.     TEXT_color( C_HWHITE ) ;
  140.     TEXT_printf( "\nOWARI" ) ;
  141.  
  142.     KYB_clrbuf() ;                            /*  バッファクリア            */
  143.     TEXT_color( C_HGREEN ) ;
  144.     TEXT_printf( "\n何かキーを押して下さい。 " ) ;
  145.     moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
  146. }
  147.  
  148.